﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Autenticacao
{
    public partial class frm_ianimal : Form
    {
        System.Data.SqlClient.SqlConnection con;
        
        public Cliente c;
        private Animal nan;
        private string op;

        private string sexo;
        private string esterilizado;
        private string foto;

        public frm_ianimal(Cliente uc, Animal a, string o)
        {
            InitializeComponent();
            this.c = uc;
            this.nan = a;
            this.op = o;

            txtfa_nome.Text = nan.get_nome();
            txtfa_especie.Text = nan.get_especie();
            txtfa_nchip.Text = nan.get_chip();
            txtfa_dtnasc.Text = nan.get_dtnasc();
            sexo = nan.get_sexo();
            esterilizado = nan.get_esterilizado();
            foto = nan.get_imagem();
            
            imgfa_pcb.ImageLocation = foto; 
            if (sexo == "M")
                rdbfa_sxm.Checked = true;
            else
                rdbfa_sxf.Checked = true;

            if (esterilizado == "S")
                ckbfa_esterilizado.Checked = true;

        }

        private void cmdfa_ianimal_Click(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = @"Data Source = ANDRÉ-PC\SQLEXPRESS; Initial Catalog = horsepw_bd; Integrated Security = True;";
            con.Open();

            if (rdbfa_sxf.Checked == true)
            {
                sexo = "F";
            }
            else
            {
                if (rdbfa_sxm.Checked == true)
                    sexo = "M";
                else
                    MessageBox.Show("Erro! Tem de definir o sexo!", "Preencher os dados!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (ckbfa_esterilizado.Checked == true)
                esterilizado = "S";
            else
            {
                if (ckbfa_esterilizado.Checked == false)
                    esterilizado = "N";
            }

            try
            {
                if (txtfa_nome.Text == "" || txtfa_especie.Text == "" || txtfa_nchip.Text == "" || txtfa_dtnasc.Text == "")
                    MessageBox.Show("Preencha os campos nome, espécie, chip e data!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                else
                {
                    int id = c.get_id();
                    if (op == "editar")
                    {
                        MessageBox.Show("Erro! Escolheu o modo de edição!", "Guarde no outro botão!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        SqlCommand command1 = con.CreateCommand();
                        command1.CommandText = "Insert into Animais (nome, especie, chip, data_nascimento, sexo, imagem, esterilizado, id_cliente) Values ('" + txtfa_nome.Text + "', '" + txtfa_especie.Text + "', '" + txtfa_nchip.Text + "', '" + txtfa_dtnasc.Text + "', '" + sexo + "', '" + foto + "', '" + esterilizado + "', " + id + ")";
                        command1.CommandType = CommandType.Text;

                        SqlDataReader reader1 = command1.ExecuteReader();

                        MessageBox.Show("Animal inserido com sucesso!", "Registo Efetuado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("Dados Inválidos!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            con.Close();
        }

        private void cmdfa_uploadimg_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "Abrir Foto";
            dlg.Filter = "JPG (*.jpg)|*.jpg"
            +
            "|All files (*.*)|*.*";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    imgfa_pcb.Image = new Bitmap(dlg.OpenFile());
                    foto = dlg.FileName;
                    //salva o caminho da foto
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Não foi possivel carregar a foto: " + ex.Message);
                }
            }
            dlg.Dispose();
        }

        private void cmdfa_fechar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cmdfa_ad_Click(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = @"Data Source = ANDRÉ-PC\SQLEXPRESS; Initial Catalog = horsepw_bd; Integrated Security = True;";
            con.Open();

            if (rdbfa_sxf.Checked == true)
            {
                sexo = "F";
            }
            else
            {
                if (rdbfa_sxm.Checked == true)
                    sexo = "M";
                else
                    MessageBox.Show("Erro! Tem de definir o sexo!", "Preencher os dados!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (ckbfa_esterilizado.Checked == true)
                esterilizado = "S";
            else
            {
                if (ckbfa_esterilizado.Checked == false)
                    esterilizado = "N";
            }

            try
            {
                int id = c.get_id();
                SqlCommand command2 = con.CreateCommand();
                if (op != "editar")
                {
                    MessageBox.Show("Erro! Escolheu guardar um novo animal!", "Atualize no outro botão!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    command2.CommandText = "Update Animais SET nome = '" + txtfa_nome.Text + "', especie = '" + txtfa_especie.Text + "', chip = '" + txtfa_nchip.Text + "', data_nascimento = '" + txtfa_dtnasc.Text + "', sexo = '" + sexo + "', imagem = '" + foto + "', esterilizado = '" + esterilizado + "', id_veterinario = " + id + "";
                    command2.CommandType = CommandType.Text;

                    SqlDataReader reader1 = command2.ExecuteReader();
                    nan.set_nome(txtfa_nome.Text);
                    nan.set_especie(txtfa_especie.Text);
                    nan.set_chip(txtfa_nchip.Text);
                    if (sexo == "M")
                    {
                        rdbfa_sxm.Checked = true;
                        nan.set_sexo(sexo);
                    }
                    else
                    {
                        rdbfa_sxf.Checked = true;
                        nan.set_sexo(sexo);
                    }
                    if (esterilizado == "S")
                    {
                        ckbfa_esterilizado.Checked = true;
                        nan.set_esterilizado(esterilizado);
                    }
                    else
                    {
                        ckbfa_esterilizado.Checked = false;
                        nan.set_esterilizado(esterilizado);
                    }

                    MessageBox.Show("Animal Atualizado com sucesso!", "Atualização Efetuada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("Dados Inválidos!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            con.Close();
        }
    }
}
